カラオケスタジオ歌詞ファイルフォーマット仕様書

歌詞ファイル(.ksl、以下、KSL フォーマット)の簡単な仕様を書いておきます。 これと、サンプルの『Faze to love.ksl』を見比べながらかけば、 なんとか自力で歌詞ファイルが書けるかと思います。
ただし、暫定版ではありますが、フォーマットは変更になるかもしれません。 あらかじめご了承ください。

全般 ファイルはテキスト形式で、Shift-JIS コードセットで記述します。 改行コードは LF ですが、CR を含めてもかまいません(内部では無視されます)。
コメント KSL フォーマットでは、3 種のコメントタイプに対応しています。 『//』『#』が現れると、そこから行末まではコメントとして無視されます。 『/* 〜 */』の間に囲まれた文字は、コメントとして無視されます。 これは、行をまたいで指定することができますが、中に再度『/* */』コメントを指定することはできません。
メタタグ指定 メタタグは、ファイルに関する情報を記述するためのものです。 '@' に続けて識別子を書き、'=' で結んで値を記述します。 メタタグは 1 行に 1 文しか書くことができません。 また、タグ名の大文字小文字は区別されません。
@format= 必須です。空白・改行を入れずにファイルの先頭に記述しなければなりません。 現在 @format="KSL 1.0" のみ対応しています。
@title= 曲名を指定します。カラオケスタジオ内部では無視されます。
@artist= アーティスト名を指定します。カラオケスタジオ内部では無視されます。
@composer= 作曲者名を指定します。カラオケスタジオ内部では無視されます。
@arranger= 編曲者名を指定します。カラオケスタジオ内部では無視されます。
@lyric= 作詞者名を指定します。カラオケスタジオ内部では無視されます。
@tempo= 曲の速さ(Beats per minute)を指定します。このタグ以降は、指定したテンポで歌詞が流れます。 途中で再度 @tempo タグを使うと、そこから後ろだけのテンポを変更することができます。
ページング処理 カラオケでは読みやすいように、歌詞が細切れになって表示されます。 これを制御するには角括弧 '[]' を使用します。 [] が現れたとき、その次の [] が現れるまでが一区切りとして表示されます。 [] では、表示する時間を指定することができます。 その際には [] の中に ':' で区切って、mm:ss:ff を記述します。ff はフレーム数で、 75 フレーム = 1 秒となります。 たとえば、[00:23:00]〜 と記述すれば、23 秒の位置から 〜 の歌詞が表示されることになります。 mm:ss:ff を省略すると、シークは行われません。カレントタイム位置にページング処理が入ります。
テキスト処理 KSL フォーマットでは、一文字ひともじに対して柔軟に表示を制御できます。 基本的に、『あかさたな』と書けば一定時間おきに『あかさたな』が強調文字で画面に表示されます。 ただし、リズムに合わせて表示するには、ある工夫をしなければなりません。下記はその方法です。
/RESOLUTION '/' 記号のあとに整数値を入力することで、一文字にかかる表示時間を指定できます。 たとえば、『/4あいうえお』とすると、四分音符にあわせて『あいうえお』と表示されます。 つまり、この場合すべて表示させるのに一小節と四分音符 1 個分が必要になります。
/RESOLUTION で表示する時間は、前回の文字が表示されてからの差分の時間(デルタタイム)です。 つまり、制作者は時間を意識せず、 拍数だけを計算しながら /RESOLUTION を埋め込んでいけばよいというわけです。
/RESOLUTION. /RESOLUTION の後ろのピリオド '.' は付点を意味します。つまり、『/4.てす/4と』と記述すると、 『てす』は付点四分音符の長さで、『と』は四分音符の長さで表示されることになります。 この場合、すべて表示させるのに一小節分必要になります。
/RESOLUTION^RESOLUTION2 /RESOLUTION に続けて '^' を書き、再び RESOLUTION2 を記述することで、 それらを合わせた時間だけ表示に時間をかけます。 例えば、『/4^8』と書けば四分音符+八分音符で、つまり付点四分音符の長さになります。 『/2.^16^4.』と書けば、付点二分音符+十六分音符+付点四分音符の長さになります。
(LYRIC) '()' で括られた文字は、テキスト処理の時間送りに含まれず、また表示の際にも強調表示されません。 セリフなどを記述するときに有効です。
<LYRIC> '<>' で括られた文字は、現在の音符長を書けて、LYRIC の文字を表示することを意味します。 例えば、『/4<あおぞらの>』とした場合、四分音符一個分の時間をかけて『あおぞらの』が表示されます。
その他特殊構文
%%、%LABEL_NAME% '%' で囲まれた文字はラベルを表します。ラベルは、後述のジャンプ処理で使用します。 ラベル名は日本語含めて基本的にどんな文字でもかまいませんが、 一つのファイル内に同じラベルを指定することはできません。
ラベル名を省略(%%)すると、ラベルの終点を表します。 これを指定しないと、ラベル範囲がファイル末端までとなってしまうので、忘れないようにしてください。
$LABEL_NAME$ '$' で囲まれたラベル範囲を繰り返します。さびが同じ歌詞、同じリズムの時などは、 このリピート機能を使うと便利です。 LABEL_NAME の演奏が終わると、再生ポイントは $LABEL_NAME$ の次の位置からとなります。





戻る

インデックスに戻る

寄付について